//////////////////////////////////////////////////////////////////////////
#pragma once


//////////////////////////////////////////////////////////////////////////
#include <RocketLua/RocketLua.hpp>


namespace Rocket
{
	namespace Core
	{
		namespace Lua
		{
			//////////////////////////////////////////////////////////////////////////
			class ROCKETLUA_EXPORT Plugin : public Rocket::Core::Plugin
			{
			public:
				//
				static void			Initialize( lua_State* state );

				virtual int			GetEventClasses() override;
				virtual void		OnInitialise() override;
				virtual void		OnShutdown() override;

			private:
				//
				Plugin( lua_State* state );
				virtual ~Plugin();

				void				_Register();

				//
				lua_State*			mpState;
			};
		}
	}
}
